package main

import (
	"fmt"
	"io"
	"log"
	"os"
)

func main() {
	//var buf [16]byte
	//os.Stdin.Read(buf[:])
	//os.Stdin.WriteString(string(buf[:]))

	openFile()
	fmt.Println("--createFile--")
	createFile()
	fmt.Println("--readFile--")
	readFile()
}

func openFile() {
	// 只读方式打开当前目录下的main.go文件
	file, err := os.Open("./xx.log")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(file.Name())
	defer file.Close()
}

func createFile() {
	file, err := os.Create("./createFile.txt")
	if err != nil {
		return
	}
	defer file.Close()
	for i := 0; i < 10; i++ {
		file.WriteString("ab\n")
		file.Write([]byte("cd\n"))
	}
}

func readFile() {
	file, err := os.Open("./createFile.txt")
	if err != nil {
		return
	}
	defer file.Close()
	// 定义接收文件读取的字节数组
	var buf [128]byte
	var content []byte
	for {
		n, err := file.Read(buf[:])
		if err == io.EOF {
			// 读取完毕
			break
		}
		if err != nil {
			log.Fatal(err)
			return
		}
		content = append(content, buf[:n]...)
	}
	fmt.Println(string(content))
}
